//
// Created by dddgzc on 2025/1/24.
//

#ifndef MYTIMER_H
#define MYTIMER_H
#include <functional>

class MyTimer {
public:
    MyTimer() = default;
    ~MyTimer() = default;

    void resetTime(); // 重置定时器
    void setWaitTime(int waitTime); // 设置等待时间
    void setIsPaused(bool paused);
    void setIsOneShot(bool onShot);
    void setCallback(std::function<void()> callback);
    void onUpdate(int delta);
    void resume(); // 从暂停中恢复
    void pause(); // 暂停

private:
    int passTime = 0; // 已经过去了的时间
    int waitTime = 0; // 需要等待的时间
    bool isPaused = false; // 是否暂停
    bool isShotted = false; // 是否触发
    bool isOneShot = false; // 是否是单次触发 就是只触发一次
    std::function<void()> myTimerCallback; // 触发的回调函数
};



#endif //MYTIMER_H
